﻿using System;
/*
 C# 多重继承
多重继承指的是一个类别可以同时从多于一个父类继承行为与特征的功能。与单一继承相对，单一继承指一个类别只可以继承自一个父类。

C# 不支持多重继承。但是，您可以使用接口来实现多重继承。
 */
namespace InheritanceApplication
{
    class Shape
    {
        protected int width;
        protected int height;

        public void SetWidth(int w)
        {
            width = w;
        }

        public void SetHeight(int h)
        {
            height = h;
        }
    }

    // 基类 PaintCost
    public interface PaintCost
    {
        int GetCost(int area);
    }

    // 派生类
    class Rectangle : Shape, PaintCost
    {
        public int GetArea()
        {
            return (width * height);
        }

        public int GetCost(int area)
        {
            return area * 70;
        }
    }

    class RectangleTester
    {
        static void Main(string[] args)
        {
            Rectangle rect = new Rectangle();
            int area;
            rect.SetWidth(5);
            rect.SetHeight(7);
            area = rect.GetArea();
            // 打印对象的面积
            Console.WriteLine("总面积：{0}", rect.GetArea());
            Console.WriteLine("油漆总成本：${0}", rect.GetCost(area));
            Console.ReadKey();
        }
    }
}